Act 5 - Mass Driver


; port1
; 3f939 = ID
; 3f93a = button1
; 3f93b = button2
; 3f93c = mouse-x
; 3f93d = mouse-y


; port2
; 3f949 = ID
; 3f94a = button1
; 3f94b = button2
; 3f94c = mouse-x
; 3f94d = mouse-y




80088e64 : 3C02800A  LUI     ffffffc2 (v0), 800a (32778),
80088e68 : 9042BD83  LBU     800a0000 (v0), bd83 (800a0000 (v0)) [8009bd83]
80088e6c : 3C01800A  LUI     8009bddd (at), 800a (32778),
80088e70 : AC23BE30  SW      ffffffc7 (v1), be30 (800a0000 (at)) [8009be30]
80088e74 : 3C01800A  LUI     800a0000 (at), 800a (32778),
80088e78 : AC24BE34  SW      00000032 (a0), be34 (800a0000 (at)) [8009be34]
80088e7c : 00021027  NOR     000000fc (v0), 00000000 (r0), 000000fc (v0),
80088e80 : 30420008  ANDI    ffffff03 (v0), ffffff03 (v0), 0008 (8),
80088e84 : 10400002  BEQ     00000000 (v0), 00000000 (r0), 80088e90,
80088e88 : 3C028000  LUI     00000000 (v0), 8000 (32768),

; button trigger?

80088e8c : AE020000  SW      80000000 (v0), 0000 (8009be44 (s0)) [8009be44]



80088ed8 : 8E020000  LW      00000008 (v0), 0000 (8009be44 (s0)) [8009be44]
80088edc : 00000000  NOP    
80088ee0 : 00431025  OR      80000000 (v0), 80000000 (v0), 20000000 (v1),
80088ee4 : AE020000  SW      a0000000 (v0), 0000 (8009be44 (s0)) [8009be44]



800923bc : 3C02800A  LUI     00000001 (v0), 800a (32778),
800923c0 : 8C42C374  LW      800a0000 (v0), c374 (800a0000 (v0)) [8009c374]
800923c4 : 00000000  NOP    
800923c8 : 8C420008  LW      8011483c (v0), 0008 (8011483c (v0)) [80114844]
800923cc : 00000000  NOP    
800923d0 : 14400058  BNE     00000000 (v0), 00000000 (r0), 80092534,
800923d4 : 3C04FFEF  LUI     800e0ce8 (a0), ffef (65519),








; cache joypad data (whole range)
80088a6c : 90820000  LBU     8003f938 (v0), 0000 (8003f938 (a0)) [8003f938]
80088a70 : 00000000  NOP    
80088a74 : 3C01800A  LUI     8009bddd (at), 800a (32778),
80088a78 : 2421BD80  ADDIU   800a0000 (at), 800a0000 (at), bd80 (48512),
80088a7c : 00230821  ADDU    8009bd80 (at), 8009bd80 (at), 00000000 (v1),
80088a80 : A0220000  SB      00000000 (v0), 0000 (8009bd80 (at)) [8009bd80]
80088a84 : 24630001  ADDIU   00000000 (v1), 00000000 (v1), 0001 (1),
80088a88 : 28620006  SLTI    00000000 (v0), 00000001 (v1), 0006 (6),
80088a8c : 1440FFF7  BNE     00000001 (v0), 00000000 (r0), 80088a6c,
80088a90 : 24840001  ADDIU   8003f938 (a0), 8003f938 (a0), 0001 (1),
80088a94 : 0C008E58  JAL     80023960, 80088a64 (ra),
80088a98 : 34040002  ORI     8003f93e (a0), 00000000 (r0), 0002 (2),
80088a9c : 00001821  ADDU    00000020 (v1), 00000000 (r0), 00000000 (r0),
80088aa0 : 00402021  ADDU    00000002 (a0), 8003f948 (v0), 00000000 (r0),
80088aa4 : 90820000  LBU     8003f948 (v0), 0000 (8003f948 (a0)) [8003f948]
80088aa8 : 00000000  NOP    
80088aac : 3C01800A  LUI     8009bd85 (at), 800a (32778),
80088ab0 : 2421BDD8  ADDIU   800a0000 (at), 800a0000 (at), bdd8 (48600),
80088ab4 : 00230821  ADDU    8009bdd8 (at), 8009bdd8 (at), 00000000 (v1),
80088ab8 : A0220000  SB      00000000 (v0), 0000 (8009bdd8 (at)) [8009bdd8]








; check mouse ID (joypad first)
80088ad0 : 9063BD80  LBU     800a0000 (v1), bd80 (800a0000 (v1)) [8009bd80]
80088ad4 : 340200FF  ORI     00000000 (v0), 00000000 (r0), 00ff (255),
80088ad8 : 1062000D  BEQ     00000000 (v1), 000000ff (v0), 80088b10,
80088adc : 34030040  ORI     00000000 (v1), 00000000 (r0), 0040 (64),


; MOUSE code
80088ae0 : 3C02800A  LUI     000000ff (v0), 800a (32778),
80088ae4 : 9042BD81  LBU     800a0000 (v0), bd81 (800a0000 (v0)) [8009bd81]
80088ae8 : 00000000  NOP    
80088aec : 304200F0  ANDI    00000012 (v0), 00000012 (v0), 00f0 (240),
80088af0 : 14430007  BNE     00000010 (v0), 00000040 (v1), 80088b10,
80088af4 : 00000000  NOP    













; mouse-xy
80088e30 : 3C03800A  LUI     00000010 (v1), 800a (32778),
80088e34 : 8063BD84  LB      800a0000 (v1), bd84 (800a0000 (v1)) [8009bd84]
80088e38 : 3C04800A  LUI     8003f94e (a0), 800a (32778),
80088e3c : 8084BD85  LB      800a0000 (a0), bd85 (800a0000 (a0)) [8009bd85]
80088e40 : 3C02800A  LUI     0000007f (v0), 800a (32778),
80088e44 : 8C42BE30  LW      800a0000 (v0), be30 (800a0000 (v0)) [8009be30]
80088e48 : 3C05800A  LUI     00000000 (a1), 800a (32778),
80088e4c : 8CA5BE34  LW      800a0000 (a1), be34 (800a0000 (a1)) [8009be34]
80088e50 : AE000000  SW      00000000 (r0), 0000 (8009be44 (s0)) [8009be44]



; update mouse cursor position
80088e54 : 00621821  ADDU    0000007f (v1), 0000007f (v1), fffffef7 (v0),
80088e58 : 00852021  ADDU    0000007f (a0), 0000007f (a0), 000000a4 (a1),
80088e5c : AE030004  SW      ffffff76 (v1), 0004 (8009be44 (s0)) [8009be48]
80088e60 : AE040008  SW      00000123 (a0), 0008 (8009be44 (s0)) [8009be4c]





8008bb6c : 3C02800A  LUI     00000001 (v0), 800a (32778),
8008bb70 : 8C42BE48  LW      800a0000 (v0), be48 (800a0000 (v0)) [8009be48]
8008bb74 : 3C04800A  LUI     00000123 (a0), 800a (32778),
8008bb78 : 8C84C74C  LW      800a0000 (a0), c74c (800a0000 (a0)) [8009c74c]
8008bb7c : 3C03800A  LUI     00000001 (v1), 800a (32778),
8008bb80 : 8C63BE4C  LW      800a0000 (v1), be4c (800a0000 (v1)) [8009be4c]
8008bb84 : 3C05800A  LUI     000000a4 (a1), 800a (32778),


; shot cursor (real)
8008bb88 : 8CA5C750  LW      800a0000 (a1), c750 (800a0000 (a1)) [8009c750]
8008bb8c : 00441023  SUBU    ffffff76 (v0), ffffff76 (v0), fffffef7 (a0),
8008bb90 : 00651823  SUBU    00000123 (v1), 00000123 (v1), 000000a4 (a1),
8008bb94 : 3C01800A  LUI     800a0000 (at), 800a (32778),
8008bb98 : AC22C744  SW      0000007f (v0), c744 (800a0000 (at)) [8009c744]
8008bb9c : 3C01800A  LUI     800a0000 (at), 800a (32778),
8008bba0 : AC23C748  SW      0000007f (v1), c748 (800a0000 (at)) [8009c748]




; mouse buttons...?
80088e64 : 3C02800A  LUI     fffffef7 (v0), 800a (32778),
80088e68 : 9042BD83  LBU     800a0000 (v0), bd83 (800a0000 (v0)) [8009bd83]
80088e6c : 3C01800A  LUI     8009bddd (at), 800a (32778),
80088e70 : AC23BE30  SW      ffffff76 (v1), be30 (800a0000 (at)) [8009be30]
80088e74 : 3C01800A  LUI     800a0000 (at), 800a (32778),
80088e78 : AC24BE34  SW      00000123 (a0), be34 (800a0000 (at)) [8009be34]
80088e7c : 00021027  NOR     000000fc (v0), 00000000 (r0), 000000fc (v0),
80088e80 : 30420008  ANDI    ffffff03 (v0), ffffff03 (v0), 0008 (8),
80088e84 : 10400002  BEQ     00000000 (v0), 00000000 (r0), 80088e90,








; cursor cache
80092284 : 8E02001C  LW      00000000 (v0), 001c (800e0ce8 (s0)) [800e0d04]
80092288 : 3C03800A  LUI     00000007 (v1), 800a (32778),
8009228c : 8C63C744  LW      800a0000 (v1), c744 (800a0000 (v1)) [8009c744]
80092290 : 00000000  NOP    
80092294 : 00431021  ADDU    00b30000 (v0), 00b30000 (v0), 007f0000 (v1),
80092298 : AE02001C  SW      01320000 (v0), 001c (800e0ce8 (s0)) [800e0d04]

8009229c : 8E020020  LW      01320000 (v0), 0020 (800e0ce8 (s0)) [800e0d08]
800922a0 : 3C03800A  LUI     007f0000 (v1), 800a (32778),
800922a4 : 8C63C748  LW      800a0000 (v1), c748 (800a0000 (v1)) [8009c748]
800922a8 : 080248B7  J       800922dc,
800922ac : 00431021  ADDU    00640000 (v0), 00640000 (v0), 007f0000 (v1),
(..)

800922dc : AE020020  SW      00e30000 (v0), 0020 (800e0ce8 (s0)) [800e0d08]






; laser dot draw (normal) - c5e20
80091dc4 : 8E42001C  LW      fffe0000 (v0), 001c (800e0ce8 (s2)) [800e0d04]
80091dc8 : 8C840008  LW      800d8ac4 (a0), 0008 (800d8ac4 (a0)) [800d8acc]
80091dcc : 00431023  SUBU    01320000 (v0), 01320000 (v0), 00018000 (v1),
80091dd0 : AC820010  SW      01308000 (v0), 0010 (800c5e10 (a0)) [800c5e20]
80091dd4 : 8E420048  LW      01308000 (v0), 0048 (800e0ce8 (s2)) [800e0d30]
80091dd8 : 00000000  NOP    
80091ddc : 8C4300B8  LW      00018000 (v1), 00b8 (80136690 (v0)) [80136748]
80091de0 : 8C440094  LW      800c5e10 (a0), 0094 (80136690 (v0)) [80136724]
80091de4 : 8E420020  LW      80136690 (v0), 0020 (800e0ce8 (s2)) [800e0d08]
80091de8 : 00031BC0  SLL     00000007 (v1), 00000007 (v1), 0f (15),
80091dec : 8C840008  LW      800d8ac4 (a0), 0008 (800d8ac4 (a0)) [800d8acc]
80091df0 : 00431023  SUBU    00e30000 (v0), 00e30000 (v0), 00038000 (v1),
80091df4 : AC820014  SW      00df8000 (v0), 0014 (800c5e10 (a0)) [800c5e24]
